#include <iostream>
#include <iomanip>
#include <queue>
#include <list>
using namespace std;

int main()
{
  deque<int> v;
  v.push_back(3),v.push_back(5),v.push_back(4);
  less<int> comp;
  priority_queue<int,deque<int> > d(less<int>(),v); //explicit constructor
  //pass by reference
  cout<<"size():\t"<<d.size()<<endl;
  cout<<"empty():\t"<<d.empty()<<endl;
  cout<<d.top()<<endl;d.pop();
  cout<<d.top()<<endl;d.pop();
  cout<<d.top()<<endl;


  priority_queue<int,deque<int> > e(d); //synthesized copy constructor
  e.push(1212);
  cout<<"size():\t"<<e.size()<<endl;
  cout<<boolalpha<<"empty():\t"<<e.empty()<<endl;
  cout<<endl;
 
  return 0;
}
